#pragma once

#include "Sol9Types.h"
#include "Sol9Config.h"
#include "IEventReceiver.h"

namespace sol9
{
	namespace device
	{
		class IDevice;
	}

namespace app
{

	class Application : public IEventReceiver
	{
	protected:
		std::tstring m_strAppName;
		device::IDevice* m_pDevice;

	public:
		Application();
		virtual ~Application();

		virtual bool initialize();
		virtual void terminate();
		virtual bool run();

		virtual bool OnEvent(const SEvent& event);
	};

} // namespace app
} // namespace sol9